package com.itheima02.day11test;

import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * @author 刘全
 * @date 2021/7/28
 */
public class Test1 {
    public static void main(String[] args) {
//        现在有两个 ArrayList 集合存储队伍当中的多个成员姓名，要求使用Stream方式进行以
//        下若干操作步骤：
//        1. 第一个队伍只要名字为3个字的成员姓名；
//        2. 第一个队伍筛选之后只要前6个人；
//        3. 第二个队伍只要姓张的成员姓名；
//        4. 第二个队伍筛选之后不要前1个人；
//        5. 将两个队伍合并为一个队伍；
//        6. 根据姓名创建Student对象；
//        7. 打印整个队伍的Student对象信息。
        ArrayList<String> list1 = new ArrayList<>();
        list1.add("周润发");
        list1.add("迪力热吗");
        list1.add("马化腾");
        list1.add("古力穷哈");
        list1.add("成龙");
        list1.add("刘德华");
        list1.add("苏晋丕");
        list1.add("欧劲武");
        list1.add("周星驰");
        list1.add("李连杰");
        list1.add("王俊凯");

        //第一个队伍只要名字为3个字的成员姓名；第一个队伍筛选之后只要前6个人；
        Stream<String> stream1 = list1.stream().filter(name -> name.length() == 3).limit(6);
        ArrayList<String> list2 = new ArrayList<>();
        list2.add("张学友");
        list2.add("郭富城");
        list2.add("张信哲");
        list2.add("小泽玛利亚");
        list2.add("三上悠亚");
        list2.add("张靓颖");
        list2.add("三上悠亚");
        //第二个队伍只要姓张的成员姓名；第二个队伍筛选之后不要前1个人；
        Stream<String> stream2 = list2.stream().filter(name -> name.startsWith("张")).skip(1);
        //将两个队伍合并为一个队伍；
        Stream<String> s = Stream.concat(stream1, stream2);
        //打印整个队伍的Student对象信息。
        s.collect(Collectors.toList()).forEach(name->{
            Student stu = new Student(name);
            System.out.println(stu);
        });
    }
}
